#pragma once
#include <stdlib.h>

/*
 * 本接口主要负责解析RTP包
 * 本接口非线程安全，不建议多线程使用（不允许，
 * 因为创建RtpPacket时使用了通用的内存，多线程使用肯定会出现问题）
 *
 */
namespace Hi {
class RtpPacket;
RtpPacket *hi_RtpPacket_parse(const uint8_t *data, size_t len);

/*
 * @brief 获取解析RTP失败原因
 * @note 当解析RTP失败（为空）时， 调用本函数可能会得到错误信息
 *		  该函数不可能返回nullptr， 如果没有错误，则返回空字符串（""）
 */
const char *hi_RtpPacket_error();

/*
 * @brief 释放解析的包指针，并且设置为nullptr。
 */
void hi_RtpPacket_release(RtpPacket **packet);

RtpPacket hi_RtpPacket_clone(RtpPacket *packet);
} // namespace Hi